﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace NutriLeaf.Web.Core.Location
{
    public interface ICity
    {
        int GetCityId(string cityName, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void InsertCity(string cityName, string countryName, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void InsertCity(string cityName, int countryId, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void InsertCity(string cityName, Model.Country country, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void InsertCity(Model.City city, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        List<Model.City> GetCitiesForACountry(string country, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        List<Model.City> GetCitiesForACountry(int countryId, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        List<Model.City> GetCitiesForACountry(Model.Country country, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void RemoveCity(string cityName, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void RemoveCity(int cityId, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void RemoveCity(Model.City city, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        Model.City GetCity(int id, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        Model.City GetCity(string cityName, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void UpdateCity(Model.City city, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void UpdateCity(int cityId, string cityName, int countryId, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);
    }
}